package tt.dz.service.base;

import java.util.List;

import tt.dz.entity.base.JsonCommon;
import tt.dz.entity.base.JsonForList;
import tt.dz.entity.base.OmsCommonParam;

public interface ServiceSplitratioService 
{
	/**
	 * 添加分成方案
	 * @param entityTypes 所属实体类型
	 * @param entityIds 所属实体id
	 * @param serviceNo 服务号
	 * @param chargeIds 桩的Id
	 * @param ratios 分成比例
	 * @param minAmount  最小保底金额
	 * @param schemeName 方案名称
	 * @return
	 */
	JsonCommon<?> add(String[] entityTypes,String[] entityIds,String[] entityNames,String serviceNo,
		String[] ratios,String[] minAmount,String schemeName,String create_oper_id);
	/**
	 * 更新分成方案
	 * @param entityTypes
	 * @param entityIds
	 * @param serviceNo
	 * @param chargeIds
	 * @param ratios
	 * @param minAmount
	 * @param schemeName
	 * @param schemeNo
	 * @return
	 */
	JsonCommon<?> update(String[] entityTypes,String[] entityIds,String[] entityNames ,
			String[] ratios,String[] minAmount,String serviceNo,String schemeName,String schemeNo,Integer valid_flag ,String update_oper_id);
	/**
	 * 删除分成方案
	 * @param schemeNo
	 * @return
	 */
	JsonCommon<?> delete(String schemeNo);
	/**
	 * 查询所有方案并分页
	 * @param param
	 * @return
	 */
	JsonForList<?> findPageObjs(OmsCommonParam param);
	/**
	 * 查看具体分成方案
	 * @param schemeNo
	 * @return
	 */
	JsonCommon<?> findSchemeBySchemeNo(String schemeNo);
	
	/**
	 * 查询某方案下的具体的桩信息 不分页
	 * @param schemeNo
	 * @param cityCode
	 * @param likeValue
	 * @return
	 */
	JsonForList<?> findChargerBySchemeNo(String schemeNo,String serviceNo,String cityCode,String likeValue);
	/**
	 * 把桩和serviceNo和schemeNo绑定，之前的数据按照serviceNo和schemeNo删除
	 * @param schemeNo
	 * @param serviceNo
	 * @param chargeIds
	 * @return
	 */
	void bindChargeIds(String serviceNo, String[] chargeIds, String schemeNo);
	JsonForList<?> getUnbindCharges(String serviceNo, String schemeNo);
	JsonForList<?> unBind(List<String> chargerIdList, String serviceNo, String schemeNo);
	JsonForList<?> findSchemeByChargerId(String chargerId);
}
